package com.campus.activity.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.campus.activity.entity.Feedback;

import java.util.List;
import java.util.Map;

/**
 * 反馈评价服务接口
 * 
 * @author System
 * @since 2024
 */
public interface FeedbackService extends IService<Feedback> {

    /**
     * 添加反馈评价
     * 
     * @param feedback 反馈信息
     * @return 是否成功
     */
    boolean addFeedback(Feedback feedback);

    /**
     * 回复反馈
     * 
     * @param feedbackId 反馈ID
     * @param replyContent 回复内容
     * @return 是否成功
     */
    boolean replyFeedback(Integer feedbackId, String replyContent);

    /**
     * 获取指定活动的学生反馈信息
     * 
     * @param activityId 活动ID
     * @return 反馈列表
     */
    List<Feedback> getFeedbackInfo(Integer activityId);

    /**
     * 获取学生的反馈记录
     * 
     * @param studentId 学生ID
     * @return 反馈列表
     */
    List<Feedback> getFeedbackByStudentId(Integer studentId);

    /**
     * 获取活动满意度统计
     * 
     * @param activityId 活动ID
     * @return 统计信息
     */
    Map<String, Object> getActivitySatisfactionStats(Integer activityId);

    /**
     * 获取未回复的反馈
     * 
     * @param activityId 活动ID
     * @return 未回复的反馈列表
     */
    List<Feedback> getUnrepliedFeedback(Integer activityId);

    /**
     * 导出反馈数据
     * 
     * @param activityId 活动ID
     * @return 反馈数据
     */
    List<Feedback> exportFeedbackData(Integer activityId);

    /**
     * 检查学生是否已对活动进行反馈
     * 
     * @param studentId 学生ID
     * @param activityId 活动ID
     * @return 是否已反馈
     */
    boolean hasStudentFeedback(Integer studentId, Integer activityId);
}